package it.traveldream.entities;

import it.traveldreamClient.beans.dto.VoloDTO;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.NamedQuery;
import javax.persistence.OneToOne;

/**
 * Entity implementation class for Entity: Volo
 *
 */

@Entity
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
public class Volo extends Trasporto implements Serializable {
	
    
	private static final long serialVersionUID = 1L;
	
	@Column(nullable = false)
	protected  String compagnia; 
    @OneToOne(mappedBy="Andata")
    private Pacchetto pk;
    @OneToOne(mappedBy="Ritorno")
    private Pacchetto pkr;
   
    public Volo(){
    	super();
    }
    
    public Volo(Volo v){
    	this.compagnia = v.getCompagnia();
    	setDataArrivo(v.getDataArrivo());
    	setDataPartenza(v.getDataPartenza());
    	setLuogoPartenza(v.getLuogoPartenza());
    	setLuogoDestinazione(v.getLuogoDestinazione());
    	setDisponibilita(true);
    	setNome(v.getNome());
    	setPrezzo(v.getPrezzo());
    }
    public Volo(VoloDTO vDTO) {
    	this.compagnia = vDTO.getCompagnia();
    	setDataArrivo(vDTO.getDataArrivo());
    	setDataPartenza(vDTO.getDataPartenza());
    	setLuogoPartenza(vDTO.getLuogoPartenza());
    	setLuogoDestinazione(vDTO.getLuogoDestinazione());
    	setDisponibilita(true);
    	setNome(vDTO.getNome());
    	setPrezzo(Integer.parseInt(vDTO.getPrezzo()));
    	
    }

    public String getCompagnia() {
    	return compagnia;
    }
    public void setCompagnia(String compagnia) {
    	this.compagnia = compagnia;
    }


    public VoloDTO getDTO(){
	VoloDTO v = new VoloDTO();
	v.setRegalo(isRegalo());
	v.setCompagnia(this.getCompagnia());
	v.setDataArrivo(this.getDataArrivo());
	v.setDataPartenza(this.getDataPartenza());
	v.setLuogoDestinazione(this.getLuogoDestinazione());
	v.setLuogoPartenza(this.getLuogoPartenza());
	v.setNome(this.getNome());
	v.setPrezzo(this.getPrezzo().toString());
	v.setIdProdotto(this.getIdProdotto());
	v.setDisponibilita(getDisponibilita());
	
	return v;
}

}